#ifndef FILEHIDER_H
#define FILEHIDER_H

#include <QtWidgets/QMainWindow>
#include <QtWidgets\qmessagebox.h>
#include <QtWidgets\QFileSystemModel>
#include <QString>
//#include <QStringList>
#include <QFileInfo>

#include <QItemSelectionModel>
#include "ui_filehider.h"
#include "driver.h"
#include "filehandler.h"
#include "QSharedMemory"

class FileHider : public QMainWindow 
{
	Q_OBJECT

public:
	explicit FileHider(QWidget *parent = 0);
	~FileHider();
	bool GetStartApp();

private:
	Ui::FileHiderClass ui;
	QMessageBox about;

	QScopedPointer<QFileSystemModel> pQFileSystemModel;
	
	QStringList LocalMasksList;
	QStringList GlobalMasksList;

	QString LocalHidePath;
	QString GlobalHidePath;

	wchar_t* DriverName;

public slots:
	//----- buttons---------------
	void AboutBox();
	//----------------------------
	void AddEnteredLocalMask();
	void AddEnteredGlobalMask();
	//----------------------------
	void MoveToLocalList();
	void MoveToGlobalList();
	//----------------------------
	void RemoveOneFromLocalList();
	void RemoveOneFromGlobalList();
	//-----------------------------
	void RemoveAllFromLocalList();
	void RemoveAllFromGlobalList();

	//-----------------------------
	void DirectoryChanged(const QModelIndex & current, const QModelIndex & previous);
	
	void LoadMasksList(const QString& path, QListWidget& ListWidget);
	void SaveMasksList(const QString& path, QListWidget& ListWidget);
	QStringList GetMasksList(QListWidget& ListWidget);

	void ToLongPathMessage();
	void CheakPathMessage();
	void NothignRemoveAllMessage();
	void SelectStringMessage();
	void EnterMaskMessage();
	void DriverLoadMessage();
	void DriverUnloadMessage();
	void MessageToDriverEvent();
	void LoadDriverBtn();
	void UnloadDriverBtn();
	void RegisterDriverBtn();
	void RegisterDriverSuccess();
	void RegisterDriverUnsuccess();

signals:
	void GlobalMasksChanged();


};

#endif // FILEHIDER_H